Страница 2 из 3 Альтернативный подход состоит в том, что необходимо расширить существующие правила грамматики, а не вводить новые правила. Вначале приведем пример того, как могли бы выглядеть расширенные правила (см. нижнюю часть листинга 22.5), а затем формально определим способ интерпретации этих правил. Расширенные правила допускают применение параметров в нетерминальных категориях. В листинге 22.5 показано, как описать грамматикус использованием расширенных правил. Категории NP и Pronoun имеют параметр, обозначающий их падеж. (Существительные не имеют падежа в английском языке, но имеют его во многих других языках.) В правиле для S словосочетание NP должно находиться в именительном падеже, тогда как в правилах для VP и рр словосочетание NP должно находиться в объектном падеже. Правило для NP принимает в качестве параметра некоторую переменную, case. Назначение этой конструкции состоит в том, что словосочетание NP может иметь любой падеж, но если вместо этого словосочетания NP подставляется местоимение Pronoun, то последнее должно иметь такой же падеж. Применение переменных, позволяющее исключить необходимость принятия решения, когда различие, определяемое переменной, не имеет значения, способствует тому, что не приходится увеличивать размер множества правил в экспоненциальной зависимости от количества рассматриваемых характеристик. Используемая для такого дополнения формальная система называется грамматикой определенных выражений, или сокращенно DCG (Definite Clause Grammar), поскольку каждое правило этой грамматики можно интерпретировать как определенное выражение в хорновской логике. Вначале мы покажем, как можно интерпретировать в качестве определенного выражения обычные, нерасширенные правила. Мы будем рассматривать каждый символ с обозначением категории как предикат, заданный на строках, поэтому выражение NP(s) принимает истинное значение, если строка s образует некоторое словосочетание NP. Следующее правило CFG: является сокращенным обозначением для следующего определенного выражения: Здесьобозначает конкатенацию двух строк, поэтому данное правило говорит о том, что если строка s1 представляет собой словосочетание NP, а строка s2 — словосочетание VP, то их конкатенация представляет собой словосочетание S; это означает, что данная интерпретация точно соответствует тому, как мы уже интерпретировали это правило CFG. Важно отметить, что грамматика определенных выражений позволяет рассматривать синтаксический анализ как логический вывод. Такой подход открывает возможность рассуждать о языках и строках с помощью многих разных способов. Например, он означает, что восходящий синтаксический анализ можно осуществлять с помощью прямого логического вывода, а нисходящий синтаксический анализ — с помощью обратного логического вывода. Как будет показано ниже, это также означает, что одна и та же грамматика может использоваться и для синтаксического анализа, и для производства новых предложений.
|